home *** CD-ROM | disk | FTP | other *** search
/ Your Apple Games Gallery 1 / Your Apple Games Gallery (Side B)(MicroSPARC, Inc.)(1988).do / TRIVIA.bas < prev    next >
BASIC Source File  |  2021-12-11  |  6KB  |  150 lines

  1. 1  REM **********************
  2. 2  REM *       TRIVIA       *
  3. 3  REM *  BY SCOTT JACKSON  *
  4. 4  REM * COPYRIGHT (C) 1985 *
  5. 5  REM * BY MICROSPARC, INC *
  6. 6  REM * CONCORD, MA  01742 *
  7. 7  REM **********************
  8. 100  HOME :DOS$ =  CHR$(4): ONERR  GOTO 1390
  9. 110 F$ = "TRIVIA.INDEX": PRINT DOS$;"OPEN";F$: PRINT DOS$;"READ";F$: INPUT SN$: INPUT RN: PRINT DOS$;"CLOSE";F$
  10. 120  IF RN <1  THEN ER = 5: GOTO 1400
  11. 130  DIM CH%(RN,3)
  12. 140  GOSUB 590: VTAB 20: PRINT "** COPYRIGHT 1985 BY MICROSPARC, INC. **": VTAB 17: HTAB 14: PRINT "INSTRUCTIONS?";: INPUT "";Y$
  13. 150  IF  LEFT$(Y$,1) < >"Y"  THEN 170
  14. 160  GOSUB 910
  15. 170  HOME 
  16. 180 TT = 0
  17. 190  VTAB 20: INVERSE 
  18. 200  HTAB 8: PRINT "CLOCK";: HTAB 28: PRINT "SCORE"
  19. 210  HTAB 8: PRINT "-----";: HTAB 28: PRINT "-----"
  20. 220  HTAB 8: PRINT "     ";: HTAB 28: PRINT "     "
  21. 230  NORMAL 
  22. 240  FOR QN = 1 TO 7
  23. 250  POKE 34,7: POKE 35,16: VTAB 7: HOME : POKE 34,0: POKE 35,23
  24. 260  INVERSE 
  25. 270  VTAB 6: PRINT "                                        ";: REM =>40 SPACES
  26. 280  VTAB 17: PRINT "                                        ";: REM =>40 SPACES
  27. 290  NORMAL 
  28. 300  GOSUB 810
  29. 310  VTAB 4: HTAB 14: PRINT "QUESTION #";QN
  30. 320  VTAB 22: HTAB 8: INVERSE : PRINT " 100 ";: NORMAL 
  31. 330  FOR I = 1 TO 3000: NEXT I
  32. 340  POKE  -16368,0
  33. 350  VTAB 8: HTAB 1: PRINT Q$(Q2 +1)
  34. 360  VTAB 12: FOR I = 1 TO 4: PRINT " ";I;". ";A$(I): NEXT 
  35. 370 TM = 100: FOR I = 0 TO 100: IF  PEEK( -16384) >127  THEN 440
  36. 380  NEXT I: GOTO 420
  37. 390  POKE  -16368,0: GOSUB 690
  38. 400  GOSUB 690
  39. 410  IF TM = 0  THEN 460
  40. 420  IF  PEEK( -16384) >127  THEN 440
  41. 430  GOTO 390
  42. 440  IF  PEEK( -16384) = A +176  THEN 500
  43. 450  POKE  -16368,0
  44. 460  FOR I = 1 TO 45:BUZZ =  PEEK( -16336) - PEEK( -16336): NEXT 
  45. 470 TM = TM -25: IF TM <0  THEN TM = 0
  46. 480  IF TM > = 1  THEN 400
  47. 490  INVERSE : HTAB 8: VTAB 22: PRINT "   0 ";: NORMAL 
  48. 500  VTAB (11 +A): HTAB 5: INVERSE : PRINT A$(A)
  49. 510  GOSUB 550
  50. 520  NORMAL : FOR I = 1 TO 2000: NEXT I
  51. 530  NEXT QN
  52. 540  GOTO 1040
  53. 550  REM    <<< SCORE >>>
  54. 560 TT = TT +TM
  55. 570  VTAB 22: HTAB (32 - LEN( STR$(TT))): PRINT TT
  56. 580  RETURN 
  57. 590  REM    <<< LOGO >>>
  58. 600  HOME 
  59. 610  INVERSE 
  60. 620  VTAB 6: HTAB 10: PRINT "                     ";: REM =>21 SPACES
  61. 630  VTAB 10: HTAB 10: PRINT "                     ";: REM =>21 SPACES
  62. 640  VTAB 6: FOR I = 6 TO 10: HTAB 10: PRINT " ": NEXT I
  63. 650  VTAB 6: FOR I = 6 TO 10: HTAB 31: PRINT " ": NEXT I
  64. 660  NORMAL 
  65. 670  VTAB 8: HTAB 18: PRINT "TRIVIA"
  66. 680  RETURN 
  67. 690  REM    <<< CLOCK >>>
  68. 700  INVERSE : VTAB 22: HTAB 9: PRINT "   ";
  69. 710 TM = TM -1
  70. 720  VTAB 22: IF TM <10  THEN  HTAB 11
  71. 730  IF TM <100  AND TM >9  THEN  HTAB 10
  72. 740  IF TM = 100  THEN  HTAB 9
  73. 750  IF TM <0  THEN TM = 0
  74. 760  PRINT TM;
  75. 770  FOR I = 0 TO 1:S =  PEEK( -16336): NEXT 
  76. 780  FOR I = 1 TO 175: NEXT 
  77. 790  NORMAL 
  78. 800  RETURN 
  79. 810  REM    <<< SELECT QUES >>>
  80. 820 Q1 =  INT( RND(1) *(RN +1)):Q2 =  INT( RND(1) *4)
  81. 830  IF CH%(Q1,Q2) = 1  THEN RC = RC +1:: ON RC >RN GOTO 1430: GOTO 820
  82. 840 CH%(Q1,Q2) = 1
  83. 850  PRINT :F$ = "TRIVIA.QUES"
  84. 860  PRINT DOS$;"OPEN"F$",L800": PRINT DOS$;"READ"F$",R";Q1
  85. 870  FOR I = 1 TO 4: INPUT A$(I): NEXT : FOR I = 1 TO 4: INPUT Q$(I): NEXT : FOR I = 1 TO 4: INPUT C$(I): NEXT 
  86. 880  PRINT DOS$;"CLOSE"F$
  87. 890 A =  VAL(C$(Q2 +1))
  88. 900  RETURN 
  89. 910  REM    <<< INSTRUCTIONS >>>
  90. 920  HOME 
  91. 930 A$ = "THE COMPUTER WILL ASK YOU A VARIETY OF  QUESTIONS."
  92. 940 B$ = "PRESS THE APPROPRIATE KEY TO SELECT THE CORRECT ANSWER (DO NOT PRESS <RETURN>)."
  93. 950 C$ = "EACH QUESTION IS WORTH UP TO 100 POINTS,WHILE EACH INCORRECT RESPONSE WILL      PENALIZE YOU 25 POINTS."
  94. 960 D$ = "TIME IS IMPORTANT, SO ANSWER QUICKLY,   BUT CORRECTLY."
  95. 970 E$ = "YOU WILL HAVE SEVEN QUESTIONS."
  96. 980 Q$ = A$: GOSUB 1000:Q$ = B$: GOSUB 1000:Q$ = C$: GOSUB 1000:Q$ = D$: GOSUB 1000:Q$ = E$: GOSUB 1000
  97. 990  PRINT "PRESS <RETURN> TO CONTINUE:";: INPUT "";Y$: HOME : RETURN 
  98. 1000  FOR I = 1 TO  LEN(Q$)
  99. 1010  PRINT  MID$ (Q$,I,1);: IF  MID$ (Q$,I,1) < >" "  THEN  GOSUB 1030
  100. 1020  NEXT I: PRINT : PRINT : PRINT : FOR J = 1 TO 150: NEXT J: RETURN 
  101. 1030  FOR K = 0 TO 1:S =  PEEK( -16336): NEXT K: FOR J = 1 TO 20: NEXT J: RETURN 
  102. 1040  REM    <<< END >>>
  103. 1050  REM     ERASE CLOCK,FLASH SCORE
  104. 1060  VTAB 12
  105. 1070 N$ = "ILLITERATE"
  106. 1080  IF TT >399  THEN N$ = "DISADVANTAGED"
  107. 1090  IF TT >449  THEN N$ = "UNDER-ACHIEVER"
  108. 1100  IF TT >499  THEN N$ = "ALMOST INTELLIGENT"
  109. 1110  IF TT >549  THEN N$ = "INTELLIGENT"
  110. 1120  IF TT >599  THEN N$ = "VERY INTELLIGENT"
  111. 1130  IF TT >649  THEN N$ = "BRILLIANT!"
  112. 1140  IF TT >674  THEN N$ = "GENIUS!!!"
  113. 1150  POKE 35,18: VTAB 1: HOME 
  114. 1160  INVERSE : VTAB 22: HTAB 8: PRINT "     ": NORMAL : POKE 35,23
  115. 1170  FLASH : VTAB 22: HTAB 29: PRINT TT;: NORMAL 
  116. 1180  VTAB 7: HTAB 1
  117. 1190 A$ = "YOUR SCORE INDICATES AN INTELLIGENCE":B$ = "LEVEL OF :"
  118. 1200  FOR I = 1 TO  LEN(A$): PRINT  MID$ (A$,I,1);: IF  MID$ (A$,I,1) = " "  THEN 1220
  119. 1210  FOR K = 0 TO 1:S =  PEEK( -16336): NEXT K
  120. 1220  FOR J = 0 TO 20: NEXT J
  121. 1230  NEXT I
  122. 1240  PRINT : PRINT : FOR I = 1 TO  LEN(B$): PRINT  MID$ (B$,I,1);: IF  MID$ (B$,I,1) = " "  THEN 1260
  123. 1250  FOR K = 0 TO 1:S =  PEEK( -16336): NEXT K
  124. 1260  FOR J = 0 TO 20: NEXT J
  125. 1270  NEXT I
  126. 1280  FOR I = 0 TO 500: NEXT I: INVERSE 
  127. 1290  FOR I = 1 TO  LEN(N$): PRINT  MID$ (N$,I,1);: IF  MID$ (N$,I,1) = " "  THEN 1310
  128. 1300  FOR K = 0 TO 10:S =  PEEK( -16336) - PEEK( -16336): NEXT K
  129. 1310  FOR J = 0 TO 20: NEXT J
  130. 1320  NEXT I
  131. 1330  NORMAL : POKE  -16368,0
  132. 1340  FOR I = 0 TO 500: NEXT I
  133. 1350  HTAB 1: VTAB 13: INPUT "ANOTHER TRY?";Y$
  134. 1360  IF  LEFT$(Y$,1) < >"N"  THEN 170
  135. 1370  TEXT : VTAB 22: END 
  136. 1380  REM  ERROR TRAP
  137. 1390 ER =  PEEK(222): HOME : VTAB 12: IF ER <22  THEN  PRINT  CHR$(4)"CLOSE"
  138. 1400  IF ER = 5  THEN  PRINT "YOU MUST USE 'TRIVIA.FILER' TO CREATE": PRINT "AT LEAST TWO QUESTION GROUPS BEFORE": PRINT "PLAYING 'TRIVIA'.": END 
  139. 1410  PRINT "ERROR #"ER" IN LINE " PEEK(218) + PEEK(219) *256: END 
  140. 1420  REM ROUTINE TO FIND UNUSED QUESTIONS
  141. 1430 Q1 =  -1
  142. 1440  FOR J1 = 0 TO RN
  143. 1450  FOR J2 = 0 TO 3
  144. 1460  IF CH%(J1,J2) < >1  THEN Q1 = J1:Q2 = J2:J1 = RN:J2 = 3
  145. 1470  NEXT 
  146. 1480  NEXT 
  147. 1490  IF Q1 < > -1  THEN RC = 0: GOTO 840
  148. 1500  HOME : VTAB 12: POKE  -16368,0: PRINT "ALL "(RN +1) *4" QUESTIONS HAVE BEEN ASKED.": PRINT "DO YOU WISH TO RESTART OR QUIT? (R/Q)";: GET K$: IF K$ = "R"  THEN  PRINT : RUN 
  149. 1510  IF K$ = "Q"  THEN  END 
  150. 1520  GOTO 1500